<!DOCTYPE HTML>

<html lang="en">
<head>

<title>org.springframework.security.web.savedrequest (spring-security-docs 5.6.3 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="org.springframework.security.web.savedrequest (spring-security-docs 5.6.3 API)";
        }
    }
    catch(err) {
    }
//-->
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">

<div class="topNav"><a id="navbar.top">

</a>
<div class="skipNav"><a href="package-summary.html#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">

</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">

</a></div>

</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 title="Package" class="title">Package&nbsp;org.springframework.security.web.savedrequest</h1>
</div>
<div class="contentContainer">
<section role="region"><a id="package.description">

</a>
<div class="block">Classes related to the caching of an <code>HttpServletRequest</code> which requires
authentication. While the user is logging in, the request is cached (using the
RequestCache implementation) by the ExceptionTranslationFilter. Once the user has been
authenticated, the original request is restored following a redirect to a matching URL,
and the <code>RequestCache</code> is queried to obtain the original (matching) request.</div>
</section>
<ul class="blockList">
<li class="blockList">
<table class="typeSummary">
<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RequestCache.html" title="interface in org.springframework.security.web.savedrequest">RequestCache</a></th>
<td class="colLast">
<div class="block">Implements "saved request" logic, allowing a single request to be retrieved and
restarted after redirecting to an authentication mechanism.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SavedRequest.html" title="interface in org.springframework.security.web.savedrequest">SavedRequest</a></th>
<td class="colLast">
<div class="block">Encapsulates the functionality required of a cached request for both an authentication
mechanism (typically form-based login) to redirect to the original URL and for a
<tt>RequestCache</tt> to build a wrapped request, reproducing the original request
data.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="CookieRequestCache.html" title="class in org.springframework.security.web.savedrequest">CookieRequestCache</a></th>
<td class="colLast">
<div class="block">An Implementation of <code>RequestCache</code> which saves the original request URI in a
cookie.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="DefaultSavedRequest.html" title="class in org.springframework.security.web.savedrequest">DefaultSavedRequest</a></th>
<td class="colLast">
<div class="block">Represents central information from a <code>HttpServletRequest</code>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="DefaultSavedRequest.Builder.html" title="class in org.springframework.security.web.savedrequest">DefaultSavedRequest.Builder</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Enumerator.html" title="class in org.springframework.security.web.savedrequest">Enumerator</a>&lt;T&gt;</th>
<td class="colLast">
<div class="block">
Adapter that wraps an <code>Enumeration</code> around a Java 2 collection
<code>Iterator</code>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="FastHttpDateFormat.html" title="class in org.springframework.security.web.savedrequest">FastHttpDateFormat</a></th>
<td class="colLast">
<div class="block">Utility class to generate HTTP dates.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="HttpSessionRequestCache.html" title="class in org.springframework.security.web.savedrequest">HttpSessionRequestCache</a></th>
<td class="colLast">
<div class="block"><code>RequestCache</code> which stores the <code>SavedRequest</code> in the HttpSession.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="NullRequestCache.html" title="class in org.springframework.security.web.savedrequest">NullRequestCache</a></th>
<td class="colLast">
<div class="block">Null implementation of <tt>RequestCache</tt>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RequestCacheAwareFilter.html" title="class in org.springframework.security.web.savedrequest">RequestCacheAwareFilter</a></th>
<td class="colLast">
<div class="block">Responsible for reconstituting the saved request if one is cached and it matches the
current request.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SavedCookie.html" title="class in org.springframework.security.web.savedrequest">SavedCookie</a></th>
<td class="colLast">
<div class="block">Stores off the values of a cookie in a serializable holder</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SimpleSavedRequest.html" title="class in org.springframework.security.web.savedrequest">SimpleSavedRequest</a></th>
<td class="colLast">
<div class="block">A Bean implementation of SavedRequest</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">

<div class="bottomNav"><a id="navbar.bottom">

</a>
<div class="skipNav"><a href="package-summary.html#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">

</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">

</a></div>

</nav>
</footer>
<script>if (window.parent == window) {(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create', 'UA-2728886-23', 'auto', {'siteSpeedSampleRate': 100});ga('send', 'pageview');}</script><script defer src="https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194" integrity="sha512-Gi7xpJR8tSkrpF7aordPZQlW2DLtzUlZcumS8dMQjwDHEnw9I7ZLyiOj/6tZStRBGtGgN6ceN6cMH8z7etPGlw==" data-cf-beacon='{"rayId":"7040c2872cd9980c","token":"bffcb8a918ae4755926f76178bfbd26b","version":"2021.12.0","si":100}' crossorigin="anonymous"></script>
</body>
</html>
